<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <script src="../js/vue.js"></script>
    <title>基本使用</title>
  </head>
  <!-- 
      几个注意点：
            1.关于组件名：
                一个单词组成：
                    第一种写法（首字母小写）：school
                    第二种写法（首字母大写）：School
                多个单词组成：
                    第一种写法（kebab-case）命名：my-school
                    第二种写法（CamelCase）命名:MySchool(需要Vue脚手架支持)
                备注：
                    （1）.组件名尽可能回避HTML中已有的元素名称，例如：h2、H2都不行
                    （2）.可以使用name配置项指定组件在开发者工具中呈现的名字

            2.关于组件标签：
                第一种写法：<school></school>
                第二种写法：<school/>
                备注：不用脚手架时，<school/>会导致后续组件不能渲染。
            
            3.一个简写方式：
                const school = Vue.extend(options)  可简写为 const school = options
   -->
  <body>
    <div id="root">
      <school-com></school-com>
      <!-- <StudentCom></StudentCom> -->
    </div>
  </body>
  <script>
    Vue.config.productionTip = false

    // 创建school组件
    const s = Vue.extend({
      data() {
        return {
          name: '太原科技大学',
          address: '北京市昌平区',
        }
      },
      template: `
        <div>
            <h2>学校名称：{{name}}</h2>
            <h2>地址：{{address}}</h2>
        </div>
      `,
    })

    // 创建学生组件
    const student = Vue.extend({
      data() {
        return {
          name: '名师',
          age: 18,
        }
      },
      template: `
        <div>
            <h2>本人名称：{{name}}</h2>
            <h2>年龄：{{age}}</h2>
        </div>
      `,
    })

    // 创建Vm1
    new Vue({
      el: '#root',
      //局部注册组件
      components: {
        'school-com': s,
        StudentCom: student, //这种每个字母大写，但是必须在脚手架下写
      },
    })
  </script>
</html>
